/**
 * 
 */
package com.ydy.service.order;

import java.util.Date;
import java.util.List;

import com.ydy.constant.OrderStatusEnum;
import com.ydy.dto.BillDTO;
import com.ydy.model.Order;
import com.ydy.model.OrderStatus;
import com.ydy.model.Staff;
import com.ydy.model.User;
import com.ydy.vo.other.BaseVo;
import com.ydy.vo.other.PageVo;

/**
 * @author xuzhaojie
 *
 *         2019年5月27日 下午3:52:02
 */
public interface OrderService {

	PageVo<Order> select(Order order, Staff staff, String word, Date startTime, Date endTime, Integer page,
			Integer size);

	PageVo<Order> selectUserOrder(Order order, User user, String word, Date startTime, Date endTime, Integer page,
			Integer size);

	Long createOrderId();

	BillDTO calculateBill(BillDTO bill);

	Order createOrder(Order order, User user);

	BaseVo updateOrderStatusPay(Long orderId, Date date);

	BaseVo updateOrderStatusRefund(Long orderId, Date date);

	BaseVo updateOrderStatusClose(Long orderId, User user);

	BaseVo delete(Long orderId);

	Order selectById(Long id, Staff staff);

	Order selectByIdAndUser(Long id, User user);

	Order selectOrderAndStatusByIdAndUser(Long id, User user);

	List<OrderStatus> selectOrderCommit(OrderStatusEnum orderStatusEnum, Date createTime);
}
